Next:
Observable
, Previous:
Dependency Problem
, Up:
Index
Connection Between Observer & Observervable
struct
ConsolePersonObserver
:
Observer
<
Person
>
{
void
field_changed
(
Person
&
source
,
const
string
&
field_name
)
override
{
cout
<<
"
Person's
"
<<
field_name
<<
"
has changed to
"
<<
source
.
get_age
(
)
<<
"
.
\n
"
;
}
}
;
//
사
용
Person
p
{
20
}
;
ConsolePersonobserver
cpo
;
p
.
subscribe
(
&
cpo
)
;
p
.
set_age
(
21
)
;
p
.
set_age
(
22
)
;
관찰자 디자인 패턴은 추가로
속성의 종속성, 스레드 안정성(MTSafe), 재진입 안정성(Reenterence)와 같은 문제들을 고려해야 한다.